Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.02.2015, 23:58
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

AJAX и проблема с кодировкой кириллицы.
Здравствуйте. Есть простой, статичный сайт .html, с указанием кодировки "windows-1251" в <head>, встроенный js с работающим скриптом (ajax) и несколько текстовых документов.
Вот адрес сайта http://mangal.biz/test/easy/index.html
Подгрузка содержимого осуществляется при клике на "Главная", "Контакты" или "О нас".
При первоначальном запуске сайта, в <div> подгружается и корректно отображается, собственный контент на кириллице, при нажатии на одну из кнопок, в тот же <div> подгружается содержимое соответствующего текстового документа, но оно отображается вот так �����.
Подскажите, пожалуйста, как это исправить.

P.S. С "utf-8", даже при указании кодировки "windows-1251" только латиница отображается правильно.

Последний раз редактировалось Blondinka, 04.02.2015 в 00:47.
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2015, 02:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Blondinka,
При кодировке "windows-1251" по каким правилам кодируются нелатинские в форме ?
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2015, 03:01
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Везде юзай utf-8. Че там в meta указано - не имеет значения (это только запасной вариант). Важно какую кодировку выставляет сервер в своих заголовках. Для Apache в .htaccess пропиши:
Код:
# use utf-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
# force utf-8 for a number of file formats
AddCharset utf-8 .html .css .js .xml .json .rss
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2015, 03:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Deff, ну зачем же сразу предлагать жуткие костыли, а? Может все решится нормальным способом, без извратов.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 04.02.2015, 15:53
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Danik.js, cпасибо. Теперь, на локальном сервере русская кодировка работает, но на mangal.biz, почему-то, не работает. Я заменила все, найденные мною на хостинге, .htaccess-файлы. Там много всяких .php-файлов. Возможно, они как-то всё тормозят.
Ответить с цитированием
  #6 (permalink)  
Старый 04.02.2015, 16:44
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Deff, alert вывел мне какие-то проценты и цыфры (%23%23%233%3BA%C1%C1-1%23%23%23). Я так понимаю, что этот код преобразует кирилицу в шестнадцатеричный код. Допустим, я могу его запускать при каждом запуске AJAX-кода. Но, как заставить его преображать вопросительные знаки в кирилицу? Вопросительные знаки - это же 16-ричный код?
Ответить с цитированием
  #7 (permalink)  
Старый 04.02.2015, 17:03
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Blondinka,
Собственно код для отправки на сервер, при получении кода сервера тут нун делать правки уже для Аякса на сервере:
http://habrahabr.ru/blogs/webdev/17640/
Просто не Хватает PHP скрипта на стороне сервера
Для GET запросов
Цитата:
Всё, что надо сделать, чтобы теперь работать
в PHP в
нормальной кодировке использовать iconv:

$f = iconv('UTF-8', 'windows-1251', $_GET['f']);
Для Post запросов

Цитата:
А для того, чтобы сервер отдавал яваскрипту в правильной кодировке (т.е. в такой же кодировке, в которой отдаются все xhtml страницы) просто в начале вашего ajax.php пропишите заголовок:

header('Content-type: text/html; charset=windows-1251');

И всё будет ок.
Ответить с цитированием
  #8 (permalink)  
Старый 04.02.2015, 18:00
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Blondinka, можно ссылку на проблемную страничку?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 04.02.2015, 18:21
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Ссылка всё та же http://mangal.biz/test/easy/index.html. Содержимое (.htaccess) уже изменилось, но, почему-то, не работает.
Ответить с цитированием
  #10 (permalink)  
Старый 04.02.2015, 21:15
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Я изменила код в теге <script>, но теперь, вообще, ничего не работает. Вот изменённый код
header('Content-type: text/html; charset=utf-8');
var contentToLoad;
var about = iconv('UTF-8', $_GET["about.txt"]), index = iconv('UTF-8', $_GET["index.txt"]),
 contacts = iconv('UTF-8', $_GET["contacts.txt"]);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax чат - проблема useruser AJAX и COMET 15 24.05.2014 21:58
проблема в json & ajax okapo Работа 4 02.05.2013 20:56
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52
ajax чат проблема с записью сообщения в базу данных mysql. Niksik AJAX и COMET 4 15.01.2012 14:04
Проблемы с кодировкой в ajax Axenic Общие вопросы Javascript 3 27.07.2010 09:30